package comportement;

//import Integer;

import cartes.Carte;
import cartes.Objet;
import common.Constantes;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Random;
import plateau.Joueur;


public class DefausserInventaire implements IncidentFacheux, Serializable{

    public ArrayList<Integer> type;
    
    public DefausserInventaire() {
        this.type = null;
    }
    
    public DefausserInventaire(ArrayList<Integer> type) {
        this.type = type;
    }

    /*
     * Défausse une ou plusieurs carte de l'inventaire suite à un incident fâcheux
     */
    public void provoquer(Joueur j) {
        // Non défini, on défausse tous les objets 
        if( type == null ) {
            for ( Carte c : j.getInventaire().getListeCartes()) {
                if( c.getClass().getName().equals(Constantes.C_OBJET) )
                   j.defausserInventaireForce(c);
            }
        }
        else {
            // Pour chaque type de carte à défausser
            for( int i : type ) {
                // On récupère la liste des cartes correspondantes dans l'inventaire
                if( j.getInventaire().containsType(i) ) {
                    j.defausserInventaire(j.getInventaire().getType(i));
                }
            }    
        }
    }

    public String getDescription() {
       String description;
        description = "Vous perdez tout votre inventaire" ;
        return description;
    }
}